Perl での RESTful API の使用例

以下の Perl の例は、システムとの対話を開始するためのセットアップ方法を示しています。以下の例は、サンプル・ファイルをインポートし、ターゲット IP アドレスを指定し、認証トークンを取得し、最後に認証トークンを使用してシステム・ターゲット上でアクションを実行する、各 Perl 関数呼び出しを示しています。

Python 3 言語の例を確認するには、Spectrum Virtualize RESTful APIを参照してください。あるいは、curl コマンド・ライン・ユーティリティーの使用例を確認するには、curl での使用例を参照してください。

注: イタリック体の値は、指定する値を表します。
以下のファイルの名前は rest_perl.pl であるとします。ファイルには、HTTP 要求を構成し、応答から JSON データを返す関数が含まれています。これらの関数は、Perl スクリプトの先頭に、インポートするか、またはコピーアンドペーストすることができます。
#!/usr/bin/perl -w use strict;
use warnings;
use HTTP::Request; use HTTP::Headers; use LWP::UserAgent; use JSON::PP;
my $ua = LWP::UserAgent->new(ssl_opts => { SSL_verify_mode => 'SSL_VERIFY_NONE' }j;
sub command{
my($host, $target, $method, $header_ref, $data_ref) = @_;
my $data_json = %{$data_ref} ? encode_json($data_ref) : "";
my $request = HTTP::Request->new($method => 
   "https://$host:7443/$target", HTTP::Headers->new(%{$header_ref}), $data_json);
$request->header(Content_Type => 'application/json');
my $response = $ua->request($request);
return decode_json($response->content);
}
ファイルがインポートされている場合は、別の Perl スクリプトまたは Perl デバッガーで次の行を使用します。
do "rest_perl.pl";
目的のターゲット・ノードのノード IP アドレスを指定します。
$host = "system_IP_address";
将来のコマンドで使用するトークンを作成するために認証情報を提供します。
$token = command($host,
'API_version/auth',
'POST',
{"X-Auth-Password" => "password", "X-Auth-Username" => "username"}, {})->{"token"};
アレイを作成するには、次の例のように、POST メソッド、ターゲット、JSON パラメーター、および新たに作成されたトークンを指定します。
$out = command($host,
'1.0/array',
'POST',
{"X-Auth-Token" => $token}, {raid_level => "raid5"});